home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-04-25 | 43.1 KB | 1,212 lines | [TEXT/MPS ] |
- //========================================================================================
- //
- // File: FWSOMPrt.h
- // Release Version: $ ODF 1 $
- //
- // Copyright: (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
- //
- //========================================================================================
-
- #define SOM_Module_sompart_Source
-
- //========================================================================================
- // Configuration checks
- //========================================================================================
-
- #ifndef FW_SUPPORTS_EMBEDDING
- #error You must define FW_SUPPORTS_EMBEDDING to be 0 or 1
- #endif
-
- #ifndef FW_SUPPORTS_EXTENSIONS
- #error You must define FW_SUPPORTS_EXTENSIONS to be 0 or 1
- #endif
-
- #ifndef FW_SUPPORTS_SCRIPTING
- #error You must define FW_SUPPORTS_SCRIPTING to be 0 or 1
- #endif
-
- #if !FW_SUPPORTS_EXTENSIONS && FW_SUPPORTS_SCRIPTING
- #error Scripting support requires Extensions support!
- #endif
-
- //========================================================================================
- // Includes
- //========================================================================================
-
- #include "SOMPart.xih"
-
- #if FW_SUPPORTS_EMBEDDING
- #include "SOMIter.xh"
-
- #ifndef FWFRMING_H
- #include "FWFrming.h"
- #endif
-
- #endif
-
- #ifndef FWODPART_H
- #include "FWODPart.h"
- #endif
-
- #ifndef FWGRINIT_H
- #include "FWGrInit.h"
- #endif
-
- #ifndef SOM_ODShape_xh
- #include <Shape.xh>
- #endif
-
- #ifndef SOM_Module_OpenDoc_Errors_defined
- #include <ErrorDef.h>
- #endif
-
- //========================================================================================
- // Extension macro
- //========================================================================================
-
- #if FW_SUPPORTS_EXTENSIONS
- #ifndef FWEXTMGR_H
- #include "FWExtMgr.h"
- #endif
- #define FW_CREATE_EXTENSION_MANAGER part->PrivSetExtensionManager(FW_NEW(FW_CExtensionManager, (part)));
- #define FW_HAS_EXTENSION \
- FW_CExtensionManager *manager = somSelf->GetFrameworkPart(ev)->GetExtensionManager(ev); \
- if (manager) result = manager->HasExtension(ev, extensionName);
- #define FW_ACQUIRE_EXTENSION \
- FW_CExtensionManager *manager = somSelf->GetFrameworkPart(ev)->GetExtensionManager(ev); \
- if (manager) extension = manager->AcquireExtension(ev, extensionName, FW_kCreateExtension);
- #define FW_RELEASE_EXTENSION \
- FW_CExtensionManager *manager = somSelf->GetFrameworkPart(ev)->GetExtensionManager(ev); \
- if (manager) released = manager->ReleaseExtension(ev, extension);
- #define FW_ABANDON_EXTENSIONS \
- FW_CExtensionManager *manager = somSelf->GetFrameworkPart(ev)->GetExtensionManager(ev); \
- if (manager) manager->AbandonExtensions(ev);
- #define FW_PURGE_EXTENSIONS \
- FW_CExtensionManager *manager = somSelf->GetFrameworkPart(ev)->GetExtensionManager(ev); \
- if (manager) manager->PurgeCachedExtensions(ev);
- #define FW_DELETE_EXTENSION_MANAGER \
- FW_CExtensionManager *manager = part->GetExtensionManager(ev); \
- delete manager;
- #else
- #define FW_CREATE_EXTENSION_MANAGER
- #define FW_HAS_EXTENSION
- #define FW_ACQUIRE_EXTENSION
- #define FW_RELEASE_EXTENSION
- #define FW_ABANDON_EXTENSIONS
- #define FW_PURGE_EXTENSIONS
- #define FW_DELETE_EXTENSION_MANAGER
- #endif
-
- //========================================================================================
- // Semantic Interface macro
- //========================================================================================
-
- #if FW_SUPPORTS_SCRIPTING
- #ifndef FWSEMINT_H
- #include "FWSemInt.h"
- #endif
- #ifndef FWPRTSCP_H
- #include "FWPrtScp.h"
- #endif
- #ifndef FW_SEMANTIC_INTERFACE_CLASS
- #define FW_SEMANTIC_INTERFACE_CLASS FW_CSemanticInterface
- #endif
- #define FW_CREATE_SEMANTIC_INTERFACE \
- FW_SEMANTIC_INTERFACE_CLASS* semInt = FW_NEW(FW_SEMANTIC_INTERFACE_CLASS,(ev, part)); \
- semInt->RegisterCallbacks(ev); \
- part->PrivSetSemanticInterface(semInt); \
- part->GetExtensionManager(ev)->RegisterExtension(ev, kODExtSemanticInterface, FW_CSemanticInterface::PrivCreate, NULL, FW_kCacheWhenReleased);
- #define FW_EMBEDDED_FRAME_SPEC \
- FW_MPartScriptable::EmbeddedFrameSpecGlue(ev, somSelf->GetFrameworkPart(ev), embeddedFrame, spec);
- #else
- #define FW_CREATE_SEMANTIC_INTERFACE
- #define FW_EMBEDDED_FRAME_SPEC \
- FW_SetEvError(ev, kODErrCannotEmbed);
- #endif
-
- //========================================================================================
- // FW_SOMPART macro
- //========================================================================================
-
- #define FW_SOMPART(ModuleName, PartName, PartClass) \
- FW_LEAF_PART_API(ModuleName, PartName, PartClass) \
- FW_CONTAINER_PART_API(ModuleName, PartName, PartClass)
-
- //========================================================================================
- // FW_LEAF_API macro
- //========================================================================================
-
- #define FW_LEAF_PART_API(ModuleName, PartName, PartClass) \
- \
- /*======================================================================================== \
- PartName \
- ========================================================================================*/\
- \
- /*---------------------------------------------------------------------------------------- \
- GetFrameworkPart \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope FW_CPart* SOMLINK PartName##GetFrameworkPart(ModuleName##_##PartName *somSelf, Environment *ev) \
- { \
- ModuleName##_##PartName##Data *somThis = ModuleName##_##PartName##GetData(somSelf); \
- \
- return somThis->fFrameworkPart; \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- NewFrameworkPart \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope FW_CPart* SOMLINK PartName##NewFrameworkPart(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODPart* partWrapper) \
- { \
- FW_PrivInitGraphics(); \
- PartClass* part = FW_NEW(PartClass, (partWrapper)); \
- FW_CREATE_EXTENSION_MANAGER \
- FW_CREATE_SEMANTIC_INTERFACE \
- return part; \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- somInit \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##somInit(ModuleName##_##PartName *somSelf) \
- { \
- ModuleName##_##PartName##_parent_ODPart_somInit(somSelf); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- somUninit \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##somUninit(ModuleName##_##PartName *somSelf) \
- { \
- FW_TRY \
- { \
- FW_SOMEnvironment ev; \
- if (somSelf->GetFrameworkPart(ev)) \
- { \
- FW_CPart *part = somSelf->GetFrameworkPart(ev); \
- FW_DELETE_EXTENSION_MANAGER \
- delete part; \
- } \
- \
- ModuleName##_##PartName##_parent_ODPart_somUninit(somSelf); \
- } \
- FW_CATCH_BEGIN \
- FW_CATCH_EVERYTHING() \
- { \
- } \
- FW_CATCH_END\
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- FulfillPromise \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##FulfillPromise(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODStorageUnitView* promiseSUView) \
- { \
- FW_CODPart::FulfillPromise(ev, somSelf->GetFrameworkPart(ev), promiseSUView); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- DragEnter \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope ODDragResult SOMLINK PartName##DragEnter(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODDragItemIterator* dragInfo, \
- ODFacet* facet, \
- ODPoint* where) \
- { \
- return FW_CODPart::DragEnter(ev, dragInfo, facet, *where); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- DragWithin \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope ODDragResult SOMLINK PartName##DragWithin(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODDragItemIterator* dragInfo, \
- ODFacet* facet, \
- ODPoint* where) \
- { \
- return FW_CODPart::DragWithin(ev, dragInfo, facet, *where); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- DragLeave \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##DragLeave(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFacet* facet, \
- ODPoint* where) \
- { \
- FW_CODPart::DragLeave(ev, facet, *where); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- Drop \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope ODDropResult SOMLINK PartName##Drop(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODDragItemIterator* dropInfo, \
- ODFacet* facet, \
- ODPoint* where) \
- { \
- return FW_CODPart::Drop(ev, dropInfo, facet, *where); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- DropCompleted \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##DropCompleted(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODPart* destPart, \
- ODDropResult dropResult) \
- { \
- FW_CODPart::DropCompleted(ev, destPart, dropResult); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- ContainingPartPropertiesUpdated \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##ContainingPartPropertiesUpdated(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFrame* frame, \
- ODStorageUnit* propertyUnit) \
- { \
- FW_CODPart::ContainingPartPropertiesUpdated(ev, frame, propertyUnit); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- AcquireContainingPartProperties \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope ODStorageUnit* SOMLINK PartName##AcquireContainingPartProperties(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFrame* frame) \
- { \
- return FW_CODPart::AcquireContainingPartProperties(ev, frame); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- EmbeddedFrameSpec \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##EmbeddedFrameSpec(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFrame* embeddedFrame, \
- ODObjectSpec* spec) \
- { \
- FW_EMBEDDED_FRAME_SPEC \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- DisplayFrameAdded \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##DisplayFrameAdded(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFrame* odFrame) \
- { \
- FW_CODPart::DisplayFrameAdded(ev, somSelf->GetFrameworkPart(ev), odFrame); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- AttachSourceFrame \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##AttachSourceFrame(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFrame* odFrame, \
- ODFrame* odSourceFrame) \
- { \
- FW_CODPart::AttachSourceFrame(ev, odFrame, odSourceFrame); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- DisplayFrameRemoved \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##DisplayFrameRemoved(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFrame* odFrame) \
- { \
- FW_CODPart::DisplayFrameRemoved(ev, odFrame); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- DisplayFrameConnected \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##DisplayFrameConnected(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFrame* odFrame) \
- { \
- FW_CODPart::DisplayFrameConnected(ev, odFrame); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- DisplayFrameClosed \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##DisplayFrameClosed(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFrame* odFrame) \
- { \
- FW_CODPart::DisplayFrameClosed(ev, odFrame); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- FrameShapeChanged \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##FrameShapeChanged(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFrame* frame) \
- { \
- FW_CODPart::FrameShapeChanged(ev, frame); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- ViewTypeChanged \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##ViewTypeChanged(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFrame* frame) \
- { \
- FW_CODPart::ViewTypeChanged(ev, frame); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- PresentationChanged \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##PresentationChanged(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFrame* frame) \
- { \
- FW_CODPart::PresentationChanged(ev, frame); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- SequenceChanged \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##SequenceChanged(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFrame* frame) \
- { \
- FW_CODPart::SequenceChanged(ev, frame); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- WritePartInfo \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##WritePartInfo(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODInfoType partInfo, \
- ODStorageUnitView* storageUnitView) \
- { \
- FW_CODPart::WritePartInfo(ev, partInfo, storageUnitView); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- ReadPartInfo \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope ODInfoType SOMLINK PartName##ReadPartInfo(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFrame* odFrame, \
- ODStorageUnitView* storageUnitView) \
- { \
- return FW_CODPart::ReadPartInfo(ev, somSelf->GetFrameworkPart(ev), odFrame, storageUnitView); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- ClonePartInfo \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##ClonePartInfo(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODDraftKey key, \
- ODInfoType partInfo, \
- ODStorageUnitView* storageUnitView, \
- ODFrame* scope) \
- { \
- FW_CODPart::ClonePartInfo(ev, \
- key, \
- partInfo, \
- storageUnitView, \
- scope); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- Open \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope ODID SOMLINK PartName##Open(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFrame* odFrame) \
- { \
- return FW_CODPart::Open(ev, somSelf->GetFrameworkPart(ev), odFrame); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- FacetAdded \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##FacetAdded(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFacet* facet) \
- { \
- FW_CODPart::FacetAdded(ev, facet); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- FacetRemoved \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##FacetRemoved(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFacet* facet) \
- { \
- FW_CODPart::FacetRemoved(ev, facet); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- CanvasChanged \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##CanvasChanged(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFacet* facet) \
- { \
- FW_CODPart::CanvasChanged(ev, facet); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- GeometryChanged \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##GeometryChanged(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFacet* facet, \
- ODBoolean clipShapeChanged, \
- ODBoolean externalTransformChanged) \
- { \
- FW_CODPart::GeometryChanged(ev, facet, clipShapeChanged, externalTransformChanged); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- Draw \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##Draw(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFacet* facet, \
- ODShape* invalidShape) \
- { \
- FW_CODPart::Draw(ev, facet, invalidShape); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- CanvasUpdated \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##CanvasUpdated(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODCanvas* canvas) \
- { \
- FW_CODPart::CanvasUpdated(ev,canvas); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- HighlightChanged \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##HighlightChanged(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFacet* facet) \
- { \
- FW_CODPart::HighlightChanged(ev,facet); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- GetPrintResolution \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope ODULong SOMLINK PartName##GetPrintResolution(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFrame* frame) \
- { \
- return FW_CODPart::GetPrintResolution(ev,frame); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- CreateLink \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope ODLinkSource* SOMLINK PartName##CreateLink(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODByteArray* data) \
- { \
- return FW_CODPart::CreateLink(ev, somSelf->GetFrameworkPart(ev), data); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- LinkUpdated \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##LinkUpdated(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODLink* updatedLink, \
- ODUpdateID updateID) \
- { \
- FW_CODPart::LinkUpdated(ev, somSelf->GetFrameworkPart(ev), updatedLink, updateID); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- RevealLink
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##RevealLink(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODLinkSource* linkSource) \
- { \
- FW_CODPart::RevealLink(ev, somSelf->GetFrameworkPart(ev), linkSource); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- EditInLinkAttempted \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope ODBoolean SOMLINK PartName##EditInLinkAttempted(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFrame* frame) \
- { \
- return FW_CODPart::EditInLinkAttempted(ev, somSelf->GetFrameworkPart(ev), frame); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- LinkStatusChanged \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##LinkStatusChanged(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFrame* frame) \
- { \
- FW_CODPart::LinkStatusChanged(ev, somSelf->GetFrameworkPart(ev), frame); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- BeginRelinquishFocus \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope ODBoolean SOMLINK PartName##BeginRelinquishFocus(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODTypeToken focus, \
- ODFrame* ownerFrame, \
- ODFrame* proposedFrame) \
- { \
- return FW_CODPart::BeginRelinquishFocus(ev, \
- somSelf->GetFrameworkPart(ev), \
- focus, \
- ownerFrame, \
- proposedFrame); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- CommitRelinquishFocus \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##CommitRelinquishFocus(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODTypeToken focus, \
- ODFrame* ownerFrame, \
- ODFrame* proposedFrame) \
- { \
- FW_CODPart::CommitRelinquishFocus(ev, \
- focus, \
- ownerFrame, \
- proposedFrame); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- AbortRelinquishFocus \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##AbortRelinquishFocus(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODTypeToken focus, \
- ODFrame* ownerFrame, \
- ODFrame* proposedFrame) \
- { \
- FW_CODPart::AbortRelinquishFocus(ev,focus,ownerFrame,proposedFrame); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- FocusAcquired \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##FocusAcquired(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODTypeToken focus, \
- ODFrame* ownerFrame) \
- { \
- FW_CODPart::FocusAcquired(ev, focus, ownerFrame); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- FocusLost \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##FocusLost(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODTypeToken focus, \
- ODFrame* ownerFrame) \
- { \
- FW_CODPart::FocusLost(ev, focus, ownerFrame); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- CloneInto \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##CloneInto(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODDraftKey key, \
- ODStorageUnit* toSU, \
- ODFrame* scope) \
- { \
- FW_TRY \
- { \
- ModuleName##_##PartName##_parent_ODPart_CloneInto(somSelf,ev, key, toSU, scope); \
- FW_CODPart::CloneInto(ev, somSelf->GetFrameworkPart(ev), key, toSU, scope); \
- } \
- FW_CATCH_BEGIN \
- FW_CATCH_REFERENCE(FW_XException, exception) \
- { \
- FW_SetException(ev, exception); \
- } \
- FW_CATCH_END\
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- ExternalizeKinds \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##ExternalizeKinds(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODTypeList* kindset) \
- { \
- FW_CODPart::ExternalizeKinds(ev, kindset); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- ChangeKind \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##ChangeKind(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODType kind) \
- { \
- FW_CODPart::ChangeKind(ev,kind); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- HandleEvent \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope ODBoolean SOMLINK PartName##HandleEvent(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODEventData* event, \
- ODFrame* frame, \
- ODFacet* facet, \
- ODEventInfo* eventInfo) \
- { \
- return FW_CODPart::HandleEvent(ev, somSelf->GetFrameworkPart(ev), event, frame, facet, eventInfo); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- AdjustMenus \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##AdjustMenus(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFrame* odFrame) \
- { \
- FW_CODPart::AdjustMenus(ev, somSelf->GetFrameworkPart(ev), odFrame); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- UndoAction \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##UndoAction(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODActionData* actionState) \
- { \
- FW_CODPart::UndoAction(ev, somSelf->GetFrameworkPart(ev), actionState); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- RedoAction \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##RedoAction(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODActionData* actionState) \
- { \
- FW_CODPart::RedoAction(ev, actionState); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- DisposeActionState \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##DisposeActionState(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODActionData* actionState, \
- ODDoneState doneState) \
- { \
- FW_CODPart::DisposeActionState(ev, actionState, doneState); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- WriteActionState \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##WriteActionState(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODActionData* actionState, \
- ODStorageUnitView* storageUnitView) \
- { \
- FW_CODPart::WriteActionState(ev, actionState, storageUnitView); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- ReadActionState \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope ODActionData SOMLINK PartName##ReadActionState(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODStorageUnitView* storageUnitView) \
- { \
- ODActionData actionData; \
- actionData._maximum = 0; \
- actionData._length = 0; \
- actionData._buffer = NULL; \
- \
- FW_CODPart::ReadActionState(ev, storageUnitView, &actionData); \
- \
- return actionData; \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- InitPart \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##InitPart(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODStorageUnit* storageUnit, \
- ODPart* partWrapper) \
- { \
- ModuleName##_##PartName##Data *somThis = ModuleName##_##PartName##GetData(somSelf); \
- \
- FW_TRY \
- { \
- ModuleName##_##PartName##_parent_ODPart_InitPart(somSelf, ev, storageUnit, partWrapper); \
- somThis->fFrameworkPart = somSelf->NewFrameworkPart(ev, partWrapper); \
- \
- FW_CODPart::InitPart(ev, somThis->fFrameworkPart, storageUnit); \
- } \
- FW_CATCH_BEGIN \
- FW_CATCH_REFERENCE(FW_XException, exception) \
- { \
- FW_SetException(ev, exception); \
- } \
- FW_CATCH_END \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- InitPartFromStorage \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##InitPartFromStorage(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODStorageUnit* storageUnit, \
- ODPart* partWrapper) \
- { \
- ModuleName##_##PartName##Data *somThis = ModuleName##_##PartName##GetData(somSelf); \
- \
- FW_TRY \
- { \
- ModuleName##_##PartName##_parent_ODPart_InitPartFromStorage(somSelf, ev, storageUnit, partWrapper); \
- somThis->fFrameworkPart = somSelf->NewFrameworkPart(ev, partWrapper); \
- \
- FW_CODPart::InitPartFromStorage(ev, somThis->fFrameworkPart, storageUnit); \
- } \
- FW_CATCH_BEGIN \
- FW_CATCH_REFERENCE(FW_XException, exception) \
- { \
- FW_SetException(ev, exception); \
- } \
- FW_CATCH_END \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- Externalize \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##Externalize(ModuleName##_##PartName *somSelf, Environment *ev) \
- { \
- FW_TRY \
- { \
- ModuleName##_##PartName##_parent_ODPart_Externalize(somSelf,ev); \
- \
- FW_CODPart::Externalize(ev, somSelf->GetFrameworkPart(ev)); \
- } \
- FW_CATCH_BEGIN \
- FW_CATCH_REFERENCE(FW_XException, exception) \
- { \
- FW_SetException(ev, exception); \
- } \
- FW_CATCH_END \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- Release \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##Release(ModuleName##_##PartName *somSelf, Environment *ev) \
- { \
- FW_TRY \
- { \
- ModuleName##_##PartName##_parent_ODPart_Release(somSelf,ev); \
- FW_CODPart::Release(ev, somSelf->GetFrameworkPart(ev)); \
- } \
- FW_CATCH_BEGIN \
- FW_CATCH_REFERENCE(FW_XException, exception) \
- { \
- FW_SetException(ev, exception); \
- } \
- FW_CATCH_END \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- ReleaseAll \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##ReleaseAll(ModuleName##_##PartName *somSelf, Environment *ev) \
- { \
- FW_TRY \
- { \
- ModuleName##_##PartName##_parent_ODPart_ReleaseAll(somSelf,ev); \
- FW_CODPart::ReleaseAll(ev, somSelf->GetFrameworkPart(ev)); \
- FW_ABANDON_EXTENSIONS \
- } \
- FW_CATCH_BEGIN \
- FW_CATCH_REFERENCE(FW_XException, exception) \
- { \
- FW_SetException(ev, exception); \
- } \
- FW_CATCH_END \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- HasExtension \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope ODBoolean SOMLINK PartName##HasExtension(ModuleName##_##PartName *somSelf, \
- Environment *ev, \
- ODType extensionName) \
- { \
- ODBoolean result = FALSE; \
- \
- FW_TRY \
- { \
- FW_HAS_EXTENSION \
- if (!result) \
- result = ModuleName##_##PartName##_parent_ODPart_HasExtension(somSelf, ev, extensionName); \
- } \
- FW_CATCH_BEGIN \
- FW_CATCH_REFERENCE(FW_XException, exception) \
- { \
- FW_SetException(ev, exception); \
- } \
- FW_CATCH_END \
- \
- return result; \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- AcquireExtension \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope ODExtension* SOMLINK PartName##AcquireExtension(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODType extensionName) \
- { \
- ODExtension* extension = NULL; \
- \
- FW_TRY \
- { \
- FW_ACQUIRE_EXTENSION \
- if (!extension) \
- extension = ModuleName##_##PartName##_parent_ODPart_AcquireExtension(somSelf, ev, extensionName); \
- } \
- FW_CATCH_BEGIN \
- FW_CATCH_REFERENCE(FW_XException, exception) \
- { \
- FW_SetException(ev, exception); \
- } \
- FW_CATCH_END \
- \
- return extension; \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- ReleaseExtension \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##ReleaseExtension(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODExtension* extension) \
- { \
- ODBoolean released = false; \
- \
- FW_TRY \
- { \
- FW_RELEASE_EXTENSION \
- if (!released) \
- ModuleName##_##PartName##_parent_ODPart_ReleaseExtension(somSelf, ev, extension); \
- } \
- FW_CATCH_BEGIN \
- FW_CATCH_REFERENCE(FW_XException, exception) \
- { \
- FW_SetException(ev, exception); \
- } \
- FW_CATCH_END \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- Purge \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope ODSize SOMLINK PartName##Purge(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODSize size) \
- { \
- ODSize bytesRecovered; \
- \
- FW_TRY \
- { \
- FW_PURGE_EXTENSIONS \
- bytesRecovered = FW_CODPart::Purge(ev, somSelf->GetFrameworkPart(ev), size); \
- } \
- FW_CATCH_BEGIN \
- FW_CATCH_REFERENCE(FW_XException, exception) \
- { \
- FW_SetException(ev, exception); \
- } \
- FW_CATCH_END \
- \
- return bytesRecovered; \
- } \
- \
-
- //========================================================================================
- // FW_CONTAINER_PART_API macro
- //========================================================================================
-
-
- #if FW_SUPPORTS_EMBEDDING
-
- // ======== Non-EmbeddingPart =========
-
- #define FW_CONTAINER_PART_API(ModuleName, PartName, PartClass) \
- /*---------------------------------------------------------------------------------------- \
- AdjustBorderShape \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope ODShape* SOMLINK PartName##AdjustBorderShape(ModuleName##_##PartName *somSelf, Environment * ev, \
- ODFacet* embeddedFacet, \
- ODShape* shape) \
- { \
- return FW_CODPart::AdjustBorderShape(ev, embeddedFacet, shape); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- EmbeddedFrameUpdated \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##EmbeddedFrameUpdated(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFrame* frame, \
- ODUpdateID updateID) \
- { \
- FW_CODPart::EmbeddedFrameUpdated(ev, somSelf->GetFrameworkPart(ev), frame, updateID); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- UsedShapeChanged \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##UsedShapeChanged(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFrame* embeddedFrame) \
- { \
- FW_CODPart::UsedShapeChanged(ev, embeddedFrame); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- RevealFrame \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope ODBoolean SOMLINK PartName##RevealFrame(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFrame* embeddedFrame, \
- ODShape* revealShape) \
- { \
- return FW_CODPart::RevealFrame(ev, embeddedFrame, revealShape); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- CreateEmbeddedFramesIterator \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope ODEmbeddedFramesIterator* SOMLINK PartName##CreateEmbeddedFramesIterator(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFrame* frame) \
- { \
- FW_CEmbeddingFrame* fwFrame = NULL;\
- ModuleName##_##PartName##EmbeddedFramesIterator* iter = NULL; \
- FW_VOLATILE(iter); \
- \
- FW_TRY \
- { \
- if (frame != NULL)\
- {\
- fwFrame = FW_CEmbeddingFrame::ODtoFWEmbeddingFrame(ev, frame);\
- FW_ASSERT(fwFrame);\
- }\
- \
- iter = new ModuleName##_##PartName##EmbeddedFramesIterator;\
- iter->InitIterator(ev, (FW_CEmbeddingPart*)somSelf->GetFrameworkPart(ev), fwFrame);\
- } \
- FW_CATCH_BEGIN \
- FW_CATCH_REFERENCE(FW_XException, exception) \
- { \
- delete iter; \
- iter = NULL; \
- FW_SetException(ev, exception); \
- } \
- FW_CATCH_END \
- \
- return iter; \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- RequestEmbeddedFrame \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope ODFrame* SOMLINK PartName##RequestEmbeddedFrame(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFrame* containingFrame, \
- ODFrame* baseFrame, \
- ODShape* frameShape, \
- ODPart* embeddedPart, \
- ODTypeToken viewType, \
- ODTypeToken presentation, \
- ODBoolean isOverlaid) \
- { \
- return FW_CODPart::RequestEmbeddedFrame(ev, \
- (FW_CEmbeddingPart*)somSelf->GetFrameworkPart(ev), \
- containingFrame, \
- baseFrame, \
- frameShape, \
- embeddedPart, \
- viewType, \
- presentation, \
- isOverlaid); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- RemoveEmbeddedFrame \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##RemoveEmbeddedFrame(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFrame* embeddedFrame) \
- { \
- FW_CODPart::RemoveEmbeddedFrame(ev, \
- (FW_CEmbeddingPart*)somSelf->GetFrameworkPart(ev), \
- embeddedFrame); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- RequestFrameShape \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope ODShape* SOMLINK PartName##RequestFrameShape(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFrame* embeddedFrame, \
- ODShape* frameShape) \
- { \
- return FW_CODPart::RequestFrameShape(ev, embeddedFrame, frameShape); \
- }
-
- #else
-
- // ======== Non-EmbeddingPart =========
-
- #define FW_CONTAINER_PART_API(ModuleName, PartName, PartClass) \
- /*---------------------------------------------------------------------------------------- \
- AdjustBorderShape \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope ODShape* SOMLINK PartName##AdjustBorderShape(ModuleName##_##PartName *somSelf, Environment * ev, \
- ODFacet* embeddedFacet, \
- ODShape* shape) \
- { \
- FW_DEBUG_MESSAGE("AdjustBorderShape: Error, this part editor does not support embedding"); \
- if (shape != NULL) \
- shape->Acquire(ev); \
- return shape; \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- EmbeddedFrameUpdated \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##EmbeddedFrameUpdated(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFrame* frame, \
- ODUpdateID updateID) \
- { \
- FW_DEBUG_MESSAGE("EmbeddedFrameUpdated: Error, this part editor does not support embedding"); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- UsedShapeChanged \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##UsedShapeChanged(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFrame* embeddedFrame) \
- { \
- FW_DEBUG_MESSAGE("UsedShapeChanged: Error, this part editor does not support embedding"); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- RevealFrame \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope ODBoolean SOMLINK PartName##RevealFrame(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFrame* embeddedFrame, \
- ODShape* revealShape) \
- { \
- FW_DEBUG_MESSAGE("RevealFrame: Error, this part editor does not support embedding"); \
- return FALSE; \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- CreateEmbeddedFramesIterator \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope ODEmbeddedFramesIterator* SOMLINK PartName##CreateEmbeddedFramesIterator(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFrame* frame) \
- { \
- FW_SetEvError(ev, kODErrCannotEmbed); \
- return NULL; \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- RequestEmbeddedFrame \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope ODFrame* SOMLINK PartName##RequestEmbeddedFrame(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFrame* containingFrame, \
- ODFrame* baseFrame, \
- ODShape* frameShape, \
- ODPart* embeddedPart, \
- ODTypeToken viewType, \
- ODTypeToken presentation, \
- ODBoolean isOverlaid) \
- { \
- FW_DEBUG_MESSAGE("RequestEmbeddedFrame: Error, this part editor does not support embedding"); \
- return NULL; \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- RemoveEmbeddedFrame \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope void SOMLINK PartName##RemoveEmbeddedFrame(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFrame* embeddedFrame) \
- { \
- FW_DEBUG_MESSAGE("RemoveEmbeddedFrame: Error, this part editor does not support embedding"); \
- } \
- \
- /*---------------------------------------------------------------------------------------- \
- RequestFrameShape \
- ----------------------------------------------------------------------------------------*/ \
- \
- SOM_Scope ODShape* SOMLINK PartName##RequestFrameShape(ModuleName##_##PartName *somSelf, Environment *ev, \
- ODFrame* embeddedFrame, \
- ODShape* frameShape) \
- { \
- FW_DEBUG_MESSAGE("RequestFrameShape: Error, this part editor does not support embedding"); \
- frameShape->Acquire(ev); \
- return frameShape; \
- }
-
- #endif